// Node.js 回调函数
// 同步读取readFileSync和异步读取readFile的区别案例

let fs =require('fs');

// 异步程序
console.log('异步开始读取');
fs.readFile('demo02.js', 'utf8', (err, data) =>{  //读取文件，回调函数第一个参数表示错误信息，第二个参数为读取的文本内容
    if (err) {
        console.log(err)
    } else {
        console.log(data);
        console.log('end async read');    //异步读取结束
    }
});



// 同步程序
console.log('同步读取数据');
let data = fs.readFileSync('./static/input.txt', 'utf8');
console.log(data.toString());
console.log("同步程序执行结束!");


// 结论：异步读取没有阻塞下面代码的执行, 同步读取阻塞下面代码执行。

/*
* 同步：同步就是你要做的事你列了一个清单，按照清单上的顺序 一个一个执行
* 异步：就是可以同时干好几件事
* 阻塞：就是按照清单上的顺序一件一件的往下走，当一件事没有做完，下面的事都干不了
* 非阻塞：就是这件事没有干完，后面的事不会等你这件事干完了再干，而是直接开始干下一件事，等你这件事干完了，后面的事也干完了，这样就大大提高了效率
* **/
